//
//  UserAccountInfo.swift
//  WeiBlog
//
//  Created by apple on 15/10/17.
//  Copyright © 2015年 xiang. All rights reserved.
//

import UIKit

class UserAccountInfo: NSObject,NSCoding {

 
// MARK:------请求token返回的属性
    //    这就是通过askForOAuthtoken拿到的数据,我们可以用这个数据,关键是token值,然后用新浪提供的借口,去访问他的数据,用户资料管的微博,首页内容等等(不包括隐私资料)
    //    Optional({
    //    "access_token" = "2.00z3C_bF0h2O9h58398481c4IiqZwC";
    //    "expires_in" = 157679999;
    //    "remind_in" = 157679999;
    //    uid = 5131925937;
    //    })

    
    
    /// token值(我们需要根据token值判断用户是否登录和token值是否过期来选择跳转界面)
    var access_token:String?
    /// 过期时间(单位:s)
    var expires_in:NSTimeInterval = 0 {
        //重写set方法
        didSet{
            //设置expires_date的值
            expires_date = NSDate(timeIntervalSinceNow: expires_in)
            
        }
    }
    
    ///  过期日期(由过期时间计算获得)
    var expires_date:NSDate?
    /// 用户id
    var uid:String?

// MARK:------由token值请求用户信息返回的数据
    ///用户昵称
    var screen_name:String?
    ///用户头像地址（大图），180×180像素
    var avatar_large:String?
    ///用户头像地址（中图），50×50像素
    var profile_image_url:String?
    

    ///字典转模型
    init(dict:[String:AnyObject]){
        super.init()
        setValuesForKeysWithDictionary(dict)
        
    }
    //考虑未定义的key
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
//        print(key)
    }
    
// MARK:归档解档
    ///归档
    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(access_token, forKey: "tokenMYLX")
        aCoder.encodeObject(uid, forKey: "uid")
        aCoder.encodeObject(expires_date, forKey: "expiresDate")
        aCoder.encodeObject(avatar_large, forKey: "avatarLarge")
        aCoder.encodeObject(screen_name, forKey: "screen_name")
    }
    ///解档
    required init?(coder aDecoder: NSCoder) {
        access_token = aDecoder.decodeObjectForKey("tokenMYLX") as? String
        uid = aDecoder.decodeObjectForKey("uid") as? String
        expires_date = aDecoder.decodeObjectForKey("expiresDate") as? NSDate
        avatar_large = aDecoder.decodeObjectForKey("avatarLarge") as? String
        screen_name = aDecoder.decodeObjectForKey("screen_name") as? String
    }
    
    
}





